Zadost o pomoc pri optimalizaci kodu - cteni ze souboru, ulozeni do IB/FB

Otázka od: Ing. Jiri Sokol

15. 9. 2004 8:44

         IB/FB
Ahoj!
Uz delsi dobu premyslim jak napsat/popsat problem, abych to nemusel rozebirat
cele a pritom jste meli dostatek informaci pro to, abyste mi mohli pomoct.
Mam aplikaci, ktera provadi sber dat z jednotek. Tyto data si ulozi na HDD a
pak nasleduje ukladani do IB/FB.
Problem je v tom, ze tech zaznamu muze byt libovlne mnoho - podle toho, jak
dlouho nebyl zaply ten program na stahovani zaznamu z jednotek. Nacteni zaznamu
z jednotek a jejich ulozeni na HDD je i na pomalejsim PC v pohode, ale ulozeni
cca 900 zaznamu (insertu) trvalo neco kolem hodiny!! Kdyz vemete v uvahu, ze
tech jednotek je u jednoho klienta 20, tak je to des!
Co s tim. Koukal jsem na kod, ktery napsal muj predchudce a rozhodne by to
chtelo neco s nim udelat. Je to napsano cca takto:
AssignFile (f, zaznam_s_daty_na_hdd);
while not f.eof do
begin
readln(f, s)
try
  IBSQL.Transaction.Close;
  IBSQL.Close;
  IBSQL.Text:=s;
  IBSQL.Prepare;
  IBSQL.ExecQuery;
  IBSQL.Trasaction.Commit;
  Inc(pocGood);
except
  IBSQL.RollBack;
  Inc(pocError);
  logovani chyby...
end;
end;//while not f.EOF do

Domnivam se, ze hodne sezere ten prepare a commit po kazdem insertu - je to
tak? Proc je to tak napsano? Protoze se muze v libovolnem radku objevit chyba a
nesmi byt vyrazeno vsech napr. 1000 zaznamu - nasypanim vsech insertu najednou
do IBSQL a pak volat ExecQuery, by to vyskocilo do toho exceptu a ten by
proveld rollback a hotovo - neni ulozeno nic. Ono ani nacitani zaznamu po
jednom ze souboru neni buhvi jak optimalizovane.
Cili me uvahy a cekam, jestli Vas nenapadne neco lepsiho:
- nacist cely soubor do pameti najednou a ne po radcich (do nejakeho streamu -
co a jak doporucujete?)
- stanovit urcity pocet zaznamu - urcity vzorek a ten se pokusit ulozit
najednou
- pokud dojde k chybe, tak principem puleni intervalu najit chybny insert
Mate jeste nekdo nejaky napad?
Diky
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol@seznam.cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5.0
programator amater

Odpovedá: delphin@post.cz

15. 9. 2004 9:36

         do IB/FB
> - nacist cely soubor do pameti najednou a ne po radcich (do nejakeho
streamu - co a jak doporucujete?)

Nacist cely soubor najednou do MemoryStreamu je samozrejmost.

> - stanovit urcity pocet zaznamu - urcity vzorek a ten se pokusit ulozit
najednou
> - pokud dojde k chybe, tak principem puleni intervalu najit chybny insert

Zkuste vkladat zaznamy treba po deseti a kdyz dojde k chybe, tak pote resit,
ktery je spatne.


A nebo takhle:
1) Vlozit vsechny data najednou bez nejake kontroly do pomocne tabulky
2) Zavolat stored proceduru, ktera provede prekopirovani dat z pomocne
tabulky tam kam patri.
3) Uspesnost vlozeni jednotlivych radku zaznamena v te pomocne tabulce


Odpovedá: Slavomir Skopalik

15. 9. 2004 10:30

         do IB/FB
> begin readln(f, s) try
> IBSQL.Transaction.Close;

Asi melo byt start transaction.

> IBSQL.Close;
> IBSQL.Text:=s;
> IBSQL.Prepare;

Zasadni chyba !
To jsou v tom souboru primo inserty, nebo jen data ?
Pokud jsou tam jen data, tak se provede prepare PRED cyklem.

> IBSQL.ExecQuery;

Vsechno hezke, ale co takle poslat co se zde deje ?
900 zaznamu trva na beznem HW asi tak 30 sec, takze neco je spatne.

> IBSQL.Trasaction.Commit;
> Inc(pocGood);
> except
> IBSQL.RollBack;
> Inc(pocError);
> logovani chyby...
> end;
> end;//while not f.EOF do
>
> Domnivam se, ze hodne sezere ten prepare a commit po kazdem
> insertu - je to tak? Proc je to tak napsano? Protoze se muze

Zde odkazi na sve clanky o FB a zrychlovani na www.dbsvet.cz,
mozna ti pomohou. V kazdem pripade mne zajima PLAN.

> v libovolnem radku objevit chyba a nesmi byt vyrazeno vsech
> napr. 1000 zaznamu - nasypanim vsech insertu najednou do
> IBSQL a pak volat ExecQuery, by to vyskocilo do toho exceptu

Tohle ani nejde ! To bys musel pozit skript componentu.

> a ten by proveld rollback a hotovo - neni ulozeno nic. Ono
> ani nacitani zaznamu po jednom ze souboru neni buhvi jak
> optimalizovane. Cili me uvahy a cekam, jestli Vas nenapadne
> neco lepsiho:
> - nacist cely soubor do pameti najednou a ne po radcich (do
> nejakeho streamu - co a jak doporucujete?)

Proboha proc ? Aby se sesypal system ?
Over si, jestli tohle neni uzke hrdlo proste tim ze vyhodis VSECHNY
opearce s FB.

> - stanovit urcity pocet zaznamu - urcity vzorek a ten se
> pokusit ulozit najednou

Pokud ma na mysli commit co zhruba 100 zaznamu, tak to jo, tudy vede
jedna cesta.

> - pokud dojde k chybe, tak principem puleni intervalu najit
> chybny insert Mate jeste nekdo nejaky napad? Diky Jirka

Tohle je uplne nepochopeni systemu vyjimek v SQL.
Pokud mas JEDEN insert, (tak jsem to pochopil i kdyz to neni
nikde explicitne zmineno), tak pokud selze, tak selhal ten jeden
jedinny insert a do DB se NIC neulozi.

 Slavek

PS:
 1. Proved si upgrade na FB 1.5.1
 2. Deaktivace indexu ti muze pomoci, ale take hooodne uskodit
 3. FB umi nacitat data z TXT souboru pres externi tabulky
 4. Podivej se, co je to Force Writes
 5. Zkontroluj si, co zere vykon FB, nebo aplikace, nebo neco jineho ?
 6. Stoji to na IO operacich, nebo nz CPU ?


Odpovedá: Ing. Jiri Sokol

15. 9. 2004 12:05

         do IB/FB
> Od: Slavomir Skopalik <skopalik@elektlabs.cz>
> Datum: 15.09.2004 11:50:08
>
> > IBSQL.Transaction.Close;
>
> Asi melo byt start transaction.

Samozrejme... Pardon

> Zasadni chyba !
> To jsou v tom souboru primo inserty, nebo jen data ?
> Pokud jsou tam jen data, tak se provede prepare PRED cyklem.

Jste ve shode s Ondrejem Kellem - predelavam to na pouze jeden prepare pred
cyklem vkladani insertu.

> > IBSQL.ExecQuery;
>
> Vsechno hezke, ale co takle poslat co se zde deje ?

Nerozumim. Jak co se zde deje? Typ prikazu? Aha, to jsem opravdu ve svem dotazu
neuvedl. Je tam neco jako:
Insert into table (field, field2, field3 atd. field10) values (hod, hod1, hod2
atd. hod10);

> 900 zaznamu trva na beznem HW asi tak 30 sec, takze neco je spatne.
No to evidentne je.  

> odkazi na sve clanky o FB a zrychlovani na www.dbsvet.cz,
> mozna ti pomohou. V kazdem pripade mne zajima PLAN.

IBExpert i IBConsole mi pisi, ze PLAN not available
 
> > v libovolnem radku objevit chyba a nesmi byt vyrazeno vsech
> > napr. 1000 zaznamu - nasypanim vsech insertu najednou do
> > IBSQL a pak volat ExecQuery, by to vyskocilo do toho exceptu
>
> Tohle ani nejde ! To bys musel pozit skript componentu.
Myslel jsem co do commit-u - tzn. 1000x dosadit vkladane hodnoty, vzdy provest
ExecQuery a pak provest jednou az na konci commit. Co se stane, kdyz do
parametru vlozim delsi retezec, nez ktery ma dany sloupec v tabulce? Spadne to
pri ExecQuery a nebo pri commit? A co bude se zaznamama, ktery jsem do te doby
ne-commit-oval?? Pri RollBack o ne prece musim prijit, ne?

> > - nacist cely soubor do pameti najednou a ne po radcich (do
> > nejakeho streamu - co a jak doporucujete?)
>
> Proboha proc ? Aby se sesypal system ?
No ne ze by to nemohlo nikdy nastat, ale... Vemu-li max. pocet zaznamu v
jednotkach = 5000, ze jsem jeste nevidel vic jak 30 instalovanych jednotek,
kazdy zaznam ma cca 80 byte-u -> max velikost souboru je 11,5 MB a to je
opravdu stav, ktery s nejvetsi pravdepodobnosti nikdy nenastane.

> Over si, jestli tohle neni uzke hrdlo proste tim ze vyhodis VSECHNY
> opearce s FB.

Asi jsem se opet spatne vyjadril. 100% je uzkym hrdlem ten FB - resp. spatny
navrh aplikace pri ukladani zaznamu do FB. Bez debaty. Pokud uz se ale snazim o
optimalizaci casti kodu, tak jsem to chtel resit na max.
 
> > - pokud dojde k chybe, tak principem puleni intervalu najit
> > chybny insert Mate jeste nekdo nejaky napad? Diky Jirka
>
> Tohle je uplne nepochopeni systemu vyjimek v SQL.
> Pokud mas JEDEN insert, (tak jsem to pochopil i kdyz to neni
> nikde explicitne zmineno), tak pokud selze, tak selhal ten jeden
> jedinny insert a do DB se NIC neulozi.

Aha, zase ma chyba ve vyjadrovani. Rekl jsem "chybny insert" - ale myslel jsem
ten radek z toho souboru, kde je napsano "insert into ....." - a tohle jsem
myslel, ze se pokusim najit. Je jasne, ze pokud vybehne vyjimka, ja delam
rollback, tak nic ulozeno neni - pri commit-u po 100 zaznamech a v pripade, ze
bude chyba ve 100-em zaznamu to zpusobi, ze se neulozi ani tech predchozich OK
99 zaznamu. Takze pak jsem si myslel, ze bych opakoval prvnich 50 zaznamu, kdyz
projdou jdu dal, kdyz ne, zkusim prvnich 25 atd. az se dopatram chybnyho
zaznamu z toho souboru.

> Slavek
>
> PS:
> 1. Proved si upgrade na FB 1.5.1
> 2. Deaktivace indexu ti muze pomoci, ale take hooodne uskodit
Vyzkousim - pokus x omyl - podle toho se rozhodnu
> 3. FB umi nacitat data z TXT souboru pres externi tabulky
Tohle jsem nikdy nedelal... jeste nevim, jestli se dam touhle cestou
> 4. Podivej se, co je to Force Writes
> 5. Zkontroluj si, co zere vykon FB, nebo aplikace, nebo neco jineho ?
Bohuzel ted nemohu otestovat
> 6. Stoji to na IO operacich, nebo nz CPU ?
Prace s tim souborem neni uzkym hrdlem, jak uz jsem rekl. Spis me k tomu vedlo,
ze se snazim kus kodu optimalizovat, tak jsem to chtel udelat se vsim vsudy.

Diky moc za podnety!
Jirka


Odpovedá: Slavomir Skopalik

15. 9. 2004 13:47

         do IB/FB
>
> IBExpert i IBConsole mi pisi, ze PLAN not available

Jsou nejaky trigry, checky, nebo podobne veci nad tema tabulkama ?
Kolik indexu ?
Mozna by pomohlo, si vypsat kolik zabiraji jednotlive prikazy v tom
kodu.

>
> > > v libovolnem radku objevit chyba a nesmi byt vyrazeno vsech
> > > napr. 1000 zaznamu - nasypanim vsech insertu najednou do
> > > IBSQL a pak volat ExecQuery, by to vyskocilo do toho exceptu
> >
> > Tohle ani nejde ! To bys musel pozit skript componentu.
> Myslel jsem co do commit-u - tzn. 1000x dosadit vkladane
> hodnoty, vzdy provest ExecQuery a pak provest jednou az na
> konci commit. Co se stane, kdyz do parametru vlozim delsi
> retezec, nez ktery ma dany sloupec v tabulce? Spadne to pri
> ExecQuery a nebo pri commit? A co bude se zaznamama, ktery
> jsem do te doby ne-commit-oval?? Pri RollBack o ne prece
> musim prijit, ne?

Ne pokud nedas rollback  .
Kdyz vkladas jen jeden zaznam, tak nemusis vubec rollback pouzivat.
Neco jineho, kdyz vkladas/upravujes vice zaznamu, pak uz musis.

>
> Aha, zase ma chyba ve vyjadrovani. Rekl jsem "chybny insert"
> - ale myslel jsem ten radek z toho souboru, kde je napsano
> "insert into ....." - a tohle jsem myslel, ze se pokusim
> najit. Je jasne, ze pokud vybehne vyjimka, ja delam rollback,
> tak nic ulozeno neni - pri commit-u po 100 zaznamech a v
> pripade, ze bude chyba ve 100-em zaznamu to zpusobi, ze se
> neulozi ani tech predchozich OK 99 zaznamu. Takze pak jsem si
> myslel, ze bych opakoval prvnich 50 zaznamu, kdyz projdou jdu
> dal, kdyz ne, zkusim prvnich 25 atd. az se dopatram chybnyho
> zaznamu z toho souboru.

Viz predchozi podnet.

>
> > Slavek
> >

> > 2. Deaktivace indexu ti muze pomoci, ale take hooodne uskodit
> Vyzkousim - pokus x omyl - podle toho se rozhodnu

POZOR !!!!
Zasadni chyba !
Slozitost insert je priblizne log(n), kdezto slozitost vybudovani indexu
je cca n*log(n).

-> pokud budes rekneme v tabulce 1e6 zaznamu, tak se bude system chovat
UPLNE jinak, nez kdyz jich tam bude 100.
Pokud nevis co delas, nech indexy aktivni.
Deaktivovat indexy se vyplaci, pokud chces vylit a zase naplnit velkou
cast tabulky.

> > 4. Podivej se, co je to Force Writes

Jeste jednou se na tohle podivej ale abych ti poradil potrebuji
zodpovedet otazku 5 a 6.
Pokud je problem s diskem, tak ti muze vypnuti FW pomoci (ale protuduj
si, co to znamena!!!).

> > 5. Zkontroluj si, co zere vykon FB, nebo aplikace, nebo
> neco jineho ?
> Bohuzel ted nemohu otestovat

A proc ? Tohle je preci zasadni!
Otevri task manager (pokud je pravda ty WinXP, co uvadis) a podivej se
kdo zere CPU (pokud nekdo).

> > 6. Stoji to na IO operacich, nebo nz CPU ?
> Prace s tim souborem neni uzkym hrdlem, jak uz jsem rekl.
> Spis me k tomu vedlo, ze se snazim kus kodu optimalizovat,
> tak jsem to chtel udelat se vsim vsudy.

Jak tohle vis ? Mas preci dva soubory.
1. txt
2. gdb (databazi).

Dale je dulezite, aby FB bezel v pameti (defaultne vyuzije cca 100MB).

Dalsi podstatnou roli hraje, jestli je pristuk k FB exkluzivni, nebo je
tam vice uzivatelu ?
Jake je spojeni aplikace s FB ?
Bezi na jednom, nebo na vice strojich ?

 Slavek


Odpovedá: Tomas Bradle

15. 9. 2004 14:11

         do IB/FB
----- Original Message -----
From: "Ing. Jiri Sokol" <js-delphi@email.cz>
To: <delphi-l@clexpert.cz>
Sent: Wednesday, September 15, 2004 1:04 PM
Subject: Re: Zadost o pomoc pri optimalizaci kodu - cteni ze souboru,
ulozeni do IB/FB


> Myslel jsem co do commit-u - tzn. 1000x dosadit vkladane hodnoty, vzdy
provest ExecQuery a pak provest jednou az na konci commit. Co se stane, kdyz
do parametru vlozim delsi retezec, nez ktery ma dany sloupec v tabulce?
Spadne to pri ExecQuery a nebo pri commit? A co bude se zaznamama, ktery
jsem do te doby ne-commit-oval?? Pri RollBack o ne prece musim prijit, ne?
>

Podle mych zkusenosti ten commit zabere zlomek casu tech predchozich
insertu, ten jenom potvrzuje platnost provedenych zmen, takze tim to
nevyresis.

Tomas Bradle
t.bradle@worldonline.cz



Odpovedá: Ing. Jiri Sokol

15. 9. 2004 14:39

         do IB/FB
> Od: Slavomir Skopalik <skopalik@elektlabs.cz>
> Datum: 15.09.2004 14:48:40
>
> >
> > IBExpert i IBConsole mi pisi, ze PLAN not available
>
> Jsou nejaky trigry, checky, nebo podobne veci nad tema tabulkama ?
> Kolik indexu ?

Jo, spouste tam jsou - Before Insert (zvysuje ID zaznamu) a After Insert -
aaaa, asi to mam - tady je strasny mazec. Samy FOR, IF, SELECT, UPDATE. No
takze zkusim nejdriv vyresit zoptimalizovat tohle + to, co uz jste mi radili a
uvidime co to udela...

> Ne pokud nedas rollback  .
> Kdyz vkladas jen jeden zaznam, tak nemusis vubec rollback pouzivat.
> Neco jineho, kdyz vkladas/upravujes vice zaznamu, pak uz musis.

Moment. Tohle me mate! Chces mi rict, ze muzu menit parametry toho insertu (jen
ukladana data), davat ExecQuery a kdyz mi to zhuci, tak muzu dat s klidem
Commit misto Rollback a budu mit ulezeno vsechno krom toho, kdy mi to spadlo?

> > > 2. Deaktivace indexu ti muze pomoci, ale take hooodne uskodit
> > Vyzkousim - pokus x omyl - podle toho se rozhodnu
>
> POZOR !!!!
> Zasadni chyba !
> Slozitost insert je priblizne log(n), kdezto slozitost vybudovani indexu
> je cca n*log(n).
>
> -> pokud budes rekneme v tabulce 1e6 zaznamu, tak se bude system chovat
> UPLNE jinak, nez kdyz jich tam bude 100.
> Pokud nevis co delas, nech indexy aktivni.
> Deaktivovat indexy se vyplaci, pokud chces vylit a zase naplnit velkou
> cast tabulky.

Hmm, tady mi chybi znalost toho, co se deje s indexem, kdyz vlozim nejaky
zaznam. Kdyz vim, ze budu vkladat dejme tomu 1000 zaznamu, tak mi pripada
logicke index vypnout, zaznamy vlozit a pak jej aktivovat. Vzdyt jak uz tady
mnozi napsali, to pri kazdem insertu stejne dela, tak proc to delat 1000 a ne
jen jednou nakonec?
 
> > > 4. Podivej se, co je to Force Writes
>
> Jeste jednou se na tohle podivej ale abych ti poradil potrebuji
> zodpovedet otazku 5 a 6.
> Pokud je problem s diskem, tak ti muze vypnuti FW pomoci (ale protuduj
> si, co to znamena!!!).

Uz jsem se na to trochu koukal bud zapisuje primo nebo do bufferu. Cert vi co
je lepsi. Vim, ze ten stroj je dost pomalej, takze by asi bylo lepsi, kdyby se
to nacitalo do bufferu a ten se casem vyprazdnoval.

> > > 5. Zkontroluj si, co zere vykon FB, nebo aplikace, nebo
> > neco jineho ?
> > Bohuzel ted nemohu otestovat
 
> A proc ? Tohle je preci zasadni!
> Otevri task manager (pokud je pravda ty WinXP, co uvadis) a podivej se
> kdo zere CPU (pokud nekdo).

To neni otazka tohohle - ja potrebuju mit ty vety - maji spec. "zakodovany"
format, ktery mi generuje ten sber dat... to muzu vyzkouset az doma. Nicmene je
to o necem jinem, kdyz mam Centrino 1,3GHz a ten "stroj" u zakaznika je nejaka
AMD6 ani nevim na kolika MHz s 64MB pameti   ale neda si rict, ze by to chtelo
neco lepsiho...

> > > 6. Stoji to na IO operacich, nebo nz CPU ?
> > Prace s tim souborem neni uzkym hrdlem, jak uz jsem rekl.
> > Spis me k tomu vedlo, ze se snazim kus kodu optimalizovat,
> > tak jsem to chtel udelat se vsim vsudy.
>
> Jak tohle vis ? Mas preci dva soubory.
> 1. txt
> 2. gdb (databazi).
Pravda, nevim. Neuvedomil jsem si to. Opet to bohuzel u zakaznika nuemim
zjistit - jsou tam Win98SE

> Dale je dulezite, aby FB bezel v pameti (defaultne vyuzije cca 100MB).
>
> Dalsi podstatnou roli hraje, jestli je pristuk k FB exkluzivni, nebo je
> tam vice uzivatelu ?

Ano, mohou tam byt spusteny dve aplikace (aplikacni server a klient) nic vic.
sitovku to sice ma, ale nejdou k ni draty

> Jake je spojeni aplikace s FB ?
localhost

> Bezi na jednom, nebo na vice strojich ?
Na jednom

> Slavek

Diky. Zkusim neco udelat s tim triggerem AfterInsert a zitra bych si dovolil se
jeste jednou ozvat. Treba se mi ho nepovede zoptimalizovat.
Jirka


Odpovedá: Slavomir Skopalik

15. 9. 2004 15:09

         do IB/FB
> Jo, spouste tam jsou - Before Insert (zvysuje ID zaznamu) a
> After Insert - aaaa, asi to mam - tady je strasny mazec. Samy
> FOR, IF, SELECT, UPDATE. No takze zkusim nejdriv vyresit
> zoptimalizovat tohle + to, co uz jste mi radili a uvidime co
> to udela...

UPDATE ? Tak to jsme asi doma  .

> Moment. Tohle me mate! Chces mi rict, ze muzu menit parametry
> toho insertu (jen ukladana data), davat ExecQuery a kdyz mi
> to zhuci, tak muzu dat s klidem Commit misto Rollback a budu
> mit ulezeno vsechno krom toho, kdy mi to spadlo?

ANO.

> Hmm, tady mi chybi znalost toho, co se deje s indexem, kdyz
> vlozim nejaky zaznam. Kdyz vim, ze budu vkladat dejme tomu
> 1000 zaznamu, tak mi pripada logicke index vypnout, zaznamy
> vlozit a pak jej aktivovat. Vzdyt jak uz tady mnozi napsali,
> to pri kazdem insertu stejne dela, tak proc to delat 1000 a
> ne jen jednou nakonec?

Tohle je preci blbost.
Napriklad vytvoreni indexu nad DB, kterou ma pro sber dat (JEDNOHO)
trva asi 5 minut, ale vlozeni zaznamu asi tak 20 ms.
Ano, indexy spomaluji vkladani, ale vytvareni celeho indexu znovu je
blbost.
Nezalezi na tom, kolik absolutne zaznamu vkladas, ale KOLIK PROCENT
to je z celku ?


> Uz jsem se na to trochu koukal bud zapisuje primo nebo do
> bufferu. Cert vi co je lepsi. Vim, ze ten stroj je dost
> pomalej, takze by asi bylo lepsi, kdyby se to nacitalo do
> bufferu a ten se casem vyprazdnoval.

Tak nejak, u FB1.5.1 je mozne nastavit i interval vyprazdneni toho
buffru.
Opet je otazkou co chces po tom serveru ?
FW- ON - stabilata
FW-OFF - vyprazdneni co x minut - NUTNA UPS (a zapomen na Win9x).
FW-OFF - bez vyprazdneni - zapomen na windows

>
> To neni otazka tohohle - ja potrebuju mit ty vety - maji
> spec. "zakodovany" format, ktery mi generuje ten sber dat...
> to muzu vyzkouset az doma. Nicmene je to o necem jinem, kdyz
> mam Centrino 1,3GHz a ten "stroj" u zakaznika je nejaka AMD6
> ani nevim na kolika MHz s 64MB pameti   ale neda si rict, ze
> by to chtelo neco lepsiho...

OK, tak jinak, co dela kontrolka disku ?
Sviti ? Problikava ? semtam blikne ?
Te pameti je malo, kolik ma DB ? Jak velkou DB ocekavas ?

>
> Pravda, nevim. Neuvedomil jsem si to. Opet to bohuzel u
> zakaznika nuemim zjistit - jsou tam Win98SE

CPU lze zjistit, ale jen souhrne (a ponekud nepresne).
Dale mes povolene UDMA, nebo jedes pres PIO ?

> Ano, mohou tam byt spusteny dve aplikace (aplikacni server a
> klient) nic vic. sitovku to sice ma, ale nejdou k ni draty

To je zasadni, jaky typ transakce pouzivaji ?
Kdyz bezis exluzivne, je nejaka zmena ?

 Slavek


Odpovedá: Martin Schayna

16. 9. 2004 13:20

         do IB/FB
Slavomir Skopalik wrote:
> Tak nejak, u FB1.5.1 je mozne nastavit i interval vyprazdneni toho
> buffru.
> Opet je otazkou co chces po tom serveru ?
> FW- ON - stabilata
> FW-OFF - vyprazdneni co x minut - NUTNA UPS (a zapomen na Win9x).
> FW-OFF - bez vyprazdneni - zapomen na windows

Muzu se zeptat na parametr kterym se konfiguruje ten interval
vyprazdnovani bufferu? Hledal jsem, ale nic podobneho jsem
nenasel.

Martin Schayna


Odpovedá: Slavomir Skopalik

16. 9. 2004 14:10

         do IB/FB
# ----------------------------
#
# How often the pages are flushed on disk
# (for databases with ForcedWrites=Off only)
#
# Number of unflushed writes which will accumulate before they are
# flushed, at the next transaction commit. For non-Win32 ports,
# the default value is -1 (Disabled)
#
# Type: integer
#
#MaxUnflushedWrites = 100

#
# Number of seconds during which unflushed writes will accumulate
# before they are flushed, at the next transaction commit. For non-Win32
# ports, the default value is -1 (Disabled)
#
# Type: integer
#
#MaxUnflushedWriteTime = 5

 Slavek

> > Tak nejak, u FB1.5.1 je mozne nastavit i interval vyprazdneni toho
> > buffru. Opet je otazkou co chces po tom serveru ?
> > FW- ON - stabilata
> > FW-OFF - vyprazdneni co x minut - NUTNA UPS (a zapomen na Win9x).
> > FW-OFF - bez vyprazdneni - zapomen na windows
>
> Muzu se zeptat na parametr kterym se konfiguruje ten interval
> vyprazdnovani bufferu? Hledal jsem, ale nic podobneho jsem nenasel.
>
> Martin Schayna
>
>
>
>
>